package io.demo01;

import org.apache.commons.io.FileUtils;

import java.io.*;

/**
 * Created by cyt on 2020/2/21 9:38
 * @author Administrator
 */
public class CopyFile {
    public static void main(String[] args) throws Exception {
        //copy();
        FileUtils.copyFile(new File("f:\\write.txt"), new File("f:\\write_copy_commonsio.txt"));
    }


    public static void copy() throws Exception {
        //创建输入流对象读取文件
        InputStream is = new FileInputStream("f:\\write.txt");
        //创建输出流对象写数据到文件
        //加入条件参数，标记是否是添加数据还是覆盖原有数据 true是添加
        OutputStream os = new FileOutputStream("f:\\write_copy.txt", true);
        //通过while循环来读写文件
        //中转站，放置读取的字节数据
        byte[] temp = new byte[1024];
        //流中非阻塞状态文件数据的长度大小
        int available = is.available();
        System.out.println("流中数据长度=" + available);
        //循环条件 ，接收每次读取长度
        int length = 0;
        //读
        while ((length = is.read(temp)) != -1) {
            System.out.println("byte数组长度=" + temp.length);
            System.out.println("读取到byte数组中的文件数据长度=" + length);

            System.out.println("两者之差=" + (temp.length - length));
            //写文件
            //os.write(temp);//将中转byte全部长度写入到文件
            //指定写入长度
            os.write(temp, 0, length);
            os.flush();
        }
        System.out.println("拷贝文件操作成功！");
        //关闭输入流输出流
        os.close();
        is.close();
    }
}
